opt subtitle "HI-TECH Software Omniscient Code Generator (Lite mode) build 10920"

opt pagewidth 120

	opt lm

	processor	16F887
clrc	macro
	bcf	3,0
	endm
clrz	macro
	bcf	3,2
	endm
setc	macro
	bsf	3,0
	endm
setz	macro
	bsf	3,2
	endm
skipc	macro
	btfss	3,0
	endm
skipz	macro
	btfss	3,2
	endm
skipnc	macro
	btfsc	3,0
	endm
skipnz	macro
	btfsc	3,2
	endm
indf	equ	0
indf0	equ	0
pc	equ	2
pcl	equ	2
status	equ	3
fsr	equ	4
fsr0	equ	4
c	equ	1
z	equ	0
pclath	equ	10
# 32 "C:\Users\WIN7\Desktop\game\game.c"
	psect config,class=CONFIG,delta=2 ;#
# 32 "C:\Users\WIN7\Desktop\game\game.c"
	dw 0xFFFA & 0xFFF7 & 0xFFEF & 0xFFFF & 0xFFFF & 0xFCFF & 0xFBFF & 0xF7FF & 0xEFFF & 0xFFFF ;#
# 33 "C:\Users\WIN7\Desktop\game\game.c"
	psect config,class=CONFIG,delta=2 ;#
# 33 "C:\Users\WIN7\Desktop\game\game.c"
	dw 0xFEFF ;#
	FNCALL	_main,_system_init
	FNCALL	_main,_dich
	FNCALL	_main,_rand
	FNCALL	_system_init,_srand
	FNCALL	_system_init,_rand
	FNCALL	_rand,_srand
	FNCALL	_rand,___lmul
	FNROOT	_main
	global	_dem
	global	_c
	global	_diem
	global	_i
	global	_j
	global	_kq
	global	_d
	global	_randx
psect	nvBANK0,class=BANK0,space=1
global __pnvBANK0
__pnvBANK0:
_randx:
       ds      4

	global	_hang
_hang:
       ds      1

	global	_lv
_lv:
       ds      1

	global	_randf
_randf:
       ds      1

	global	_thanh
_thanh:
       ds      1

	global	_PORTA
_PORTA	set	5
	global	_PORTB
_PORTB	set	6
	global	_PORTC
_PORTC	set	7
	global	_PORTD
_PORTD	set	8
	global	_TMR0
_TMR0	set	1
	global	_CARRY
_CARRY	set	24
	global	_GIE
_GIE	set	95
	global	_RE0
_RE0	set	72
	global	_RE1
_RE1	set	73
	global	_TRISA
_TRISA	set	133
	global	_TRISB
_TRISB	set	134
	global	_TRISC
_TRISC	set	135
	global	_TRISD
_TRISD	set	136
	global	_TRISE
_TRISE	set	137
	global	_EEADR
_EEADR	set	269
	global	_EEDATA
_EEDATA	set	268
	global	_ANSEL
_ANSEL	set	392
	global	_ANSELH
_ANSELH	set	393
	global	_EECON1
_EECON1	set	396
	global	_EECON2
_EECON2	set	397
	global	_RD
_RD	set	3168
	global	_WR
_WR	set	3169
	global	_WREN
_WREN	set	3170
	global	_cham
_cham:
       ds      1

	file	"game.as"
	line	#
psect cinit,class=CODE,delta=2
global start_initialization
start_initialization:

psect	bssCOMMON,class=COMMON,space=1
global __pbssCOMMON
__pbssCOMMON:
_d:
       ds      1

psect	bssBANK0,class=BANK0,space=1
global __pbssBANK0
__pbssBANK0:
_dem:
       ds      2

_c:
       ds      1

_diem:
       ds      1

_i:
       ds      1

_j:
       ds      1

_kq:
       ds      1

; Clear objects allocated to COMMON
psect cinit,class=CODE,delta=2
	clrf	((__pbssCOMMON)+0)&07Fh
; Clear objects allocated to BANK0
psect cinit,class=CODE,delta=2
	clrf	((__pbssBANK0)+0)&07Fh
	clrf	((__pbssBANK0)+1)&07Fh
	clrf	((__pbssBANK0)+2)&07Fh
	clrf	((__pbssBANK0)+3)&07Fh
	clrf	((__pbssBANK0)+4)&07Fh
	clrf	((__pbssBANK0)+5)&07Fh
	clrf	((__pbssBANK0)+6)&07Fh
psect cinit,class=CODE,delta=2
global end_of_initialization

;End of C runtime variable initialization code

end_of_initialization:
clrf status
ljmp _main	;jump to C main() function
psect	cstackCOMMON,class=COMMON,space=1
global __pcstackCOMMON
__pcstackCOMMON:
	global	?_srand
?_srand:	; 0 bytes @ 0x0
	global	?_system_init
?_system_init:	; 0 bytes @ 0x0
	global	?_dich
?_dich:	; 0 bytes @ 0x0
	global	??_dich
??_dich:	; 0 bytes @ 0x0
	global	?_main
?_main:	; 0 bytes @ 0x0
	global	?___lmul
?___lmul:	; 4 bytes @ 0x0
	global	srand@x
srand@x:	; 2 bytes @ 0x0
	global	___lmul@multiplier
___lmul@multiplier:	; 4 bytes @ 0x0
	ds	2
	global	??_srand
??_srand:	; 0 bytes @ 0x2
	ds	2
	global	___lmul@multiplicand
___lmul@multiplicand:	; 4 bytes @ 0x4
	ds	4
	global	??___lmul
??___lmul:	; 0 bytes @ 0x8
	ds	1
	global	___lmul@product
___lmul@product:	; 4 bytes @ 0x9
	ds	4
psect	cstackBANK0,class=BANK0,space=1
global __pcstackBANK0
__pcstackBANK0:
	global	?_rand
?_rand:	; 2 bytes @ 0x0
	ds	2
	global	??_rand
??_rand:	; 0 bytes @ 0x2
	ds	9
	global	??_system_init
??_system_init:	; 0 bytes @ 0xB
	ds	2
	global	??_main
??_main:	; 0 bytes @ 0xD
	ds	2
;;Data sizes: Strings 0, constant 0, data 0, bss 8, persistent 9 stack 0
;;Auto spaces:   Size  Autos    Used
;; COMMON          14     13      14
;; BANK0           80     15      31
;; BANK1           80      0       0
;; BANK3           96      0       0
;; BANK2           96      0       0

;;
;; Pointer list with targets:

;; ?_rand	int  size(1) Largest target is 0
;;
;; ?___lmul	unsigned long  size(1) Largest target is 0
;;


;;
;; Critical Paths under _main in COMMON
;;
;;   _rand->___lmul
;;
;; Critical Paths under _main in BANK0
;;
;;   _main->_system_init
;;   _system_init->_rand
;;
;; Critical Paths under _main in BANK1
;;
;;   None.
;;
;; Critical Paths under _main in BANK3
;;
;;   None.
;;
;; Critical Paths under _main in BANK2
;;
;;   None.

;;
;;Main: autosize = 0, tempsize = 2, incstack = 0, save=0
;;

;;
;;Call Graph Tables:
;;
;; ---------------------------------------------------------------------------------
;; (Depth) Function   	        Calls       Base Space   Used Autos Params    Refs
;; ---------------------------------------------------------------------------------
;; (0) _main                                                 2     2      0     250
;;                                             13 BANK0      2     2      0
;;                        _system_init
;;                               _dich
;;                               _rand
;; ---------------------------------------------------------------------------------
;; (1) _system_init                                          2     2      0     136
;;                                             11 BANK0      2     2      0
;;                              _srand
;;                               _rand
;; ---------------------------------------------------------------------------------
;; (1) _dich                                                 2     2      0       0
;;                                              0 COMMON     2     2      0
;; ---------------------------------------------------------------------------------
;; (1) _rand                                                11     9      2     114
;;                                              0 BANK0     11     9      2
;;                              _srand
;;                             ___lmul
;; ---------------------------------------------------------------------------------
;; (2) ___lmul                                              13     5      8      92
;;                                              0 COMMON    13     5      8
;; ---------------------------------------------------------------------------------
;; (2) _srand                                                2     0      2      22
;;                                              0 COMMON     2     0      2
;; ---------------------------------------------------------------------------------
;; Estimated maximum stack depth 2
;; ---------------------------------------------------------------------------------

;; Call Graph Graphs:

;; _main (ROOT)
;;   _system_init
;;     _srand
;;     _rand
;;       _srand
;;       ___lmul
;;   _dich
;;   _rand
;;     _srand
;;     ___lmul
;;

;; Address spaces:

;;Name               Size   Autos  Total    Cost      Usage
;;BITCOMMON            E      0       0       0        0.0%
;;EEDATA             100      0       0       0        0.0%
;;NULL                 0      0       0       0        0.0%
;;CODE                 0      0       0       0        0.0%
;;COMMON               E      D       E       1      100.0%
;;BITSFR0              0      0       0       1        0.0%
;;SFR0                 0      0       0       1        0.0%
;;BITSFR1              0      0       0       2        0.0%
;;SFR1                 0      0       0       2        0.0%
;;STACK                0      0       3       2        0.0%
;;ABS                  0      0      2D       3        0.0%
;;BITBANK0            50      0       0       4        0.0%
;;BITSFR3              0      0       0       4        0.0%
;;SFR3                 0      0       0       4        0.0%
;;BANK0               50      F      1F       5       38.8%
;;BITSFR2              0      0       0       5        0.0%
;;SFR2                 0      0       0       5        0.0%
;;BITBANK1            50      0       0       6        0.0%
;;BANK1               50      0       0       7        0.0%
;;BITBANK3            60      0       0       8        0.0%
;;BANK3               60      0       0       9        0.0%
;;BITBANK2            60      0       0      10        0.0%
;;BANK2               60      0       0      11        0.0%
;;DATA                 0      0      30      12        0.0%

	global	_main
psect	maintext,global,class=CODE,delta=2
global __pmaintext
__pmaintext:

;; *************** function _main *****************
;; Defined at:
;;		line 109 in file "C:\Users\WIN7\Desktop\game\game.c"
;; Parameters:    Size  Location     Type
;;		None
;; Auto vars:     Size  Location     Type
;;		None
;; Return value:  Size  Location     Type
;;		None               void
;; Registers used:
;;		wreg, status,2, status,0, pclath, cstack
;; Tracked objects:
;;		On entry : 17F/0
;;		On exit  : 0/0
;;		Unchanged: 0/0
;; Data sizes:     COMMON   BANK0   BANK1   BANK3   BANK2
;;      Params:         0       0       0       0       0
;;      Locals:         0       0       0       0       0
;;      Temps:          0       2       0       0       0
;;      Totals:         0       2       0       0       0
;;Total ram usage:        2 bytes
;; Hardware stack levels required when called:    3
;; This function calls:
;;		_system_init
;;		_dich
;;		_rand
;; This function is called by:
;;		Startup code after reset
;; This function uses a non-reentrant model
;;
psect	maintext
	file	"C:\Users\WIN7\Desktop\game\game.c"
	line	109
	global	__size_of_main
	__size_of_main	equ	__end_of_main-_main
	
_main:	
	opt	stack 5
; Regs used in _main: [wreg+status,2+status,0+pclath+cstack]
	line	110
	
l3511:	
;game.c: 110: system_init();
	fcall	_system_init
	goto	l3513
	line	111
;game.c: 111: while(1)
	
l1065:	
	line	113
	
l3513:	
;game.c: 112: {
;game.c: 113: PORTB = 0x00;
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	clrf	(6)	;volatile
	line	114
	
l3515:	
;game.c: 114: PORTD = 0x80;
	movlw	(080h)
	movwf	(8)	;volatile
	line	115
	
l3517:	
;game.c: 115: dich();
	fcall	_dich
	line	116
	
l3519:	
;game.c: 116: PORTC = thanh;
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movf	(_thanh),w
	movwf	(7)	;volatile
	line	117
	
l3521:	
;game.c: 117: _delay((unsigned long)((10)*(4000000/4000.0)));
	opt asmopt_off
movlw	13
movwf	((??_main+0)+0+1),f
	movlw	251
movwf	((??_main+0)+0),f
u2597:
	decfsz	((??_main+0)+0),f
	goto	u2597
	decfsz	((??_main+0)+0+1),f
	goto	u2597
	nop2
opt asmopt_on

	line	119
	
l3523:	
;game.c: 119: PORTC = 0x00;
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	clrf	(7)	;volatile
	line	120
;game.c: 120: PORTD = hang;
	movf	(_hang),w
	movwf	(8)	;volatile
	line	121
	
l3525:	
;game.c: 121: i++;
	movlw	(01h)
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	addwf	(_i),f
	line	122
	
l3527:	
;game.c: 122: if(i==lv)
	movf	(_i),w
	xorwf	(_lv),w
	skipz
	goto	u2521
	goto	u2520
u2521:
	goto	l3533
u2520:
	line	124
	
l3529:	
;game.c: 123: {
;game.c: 124: hang = hang << 1;
	movf	(_hang),w
	movwf	(??_main+0)+0
	addwf	(??_main+0)+0,w
	movwf	(??_main+1)+0
	movf	(??_main+1)+0,w
	movwf	(_hang)
	line	125
	
l3531:	
;game.c: 125: i=0;
	clrf	(_i)
	goto	l3533
	line	126
	
l1066:	
	line	127
	
l3533:	
;game.c: 126: }
;game.c: 127: if(hang == 0)
	movf	(_hang),f
	skipz
	goto	u2531
	goto	u2530
u2531:
	goto	l1067
u2530:
	line	129
	
l3535:	
;game.c: 128: {
;game.c: 129: hang =0x01;
	clrf	(_hang)
	bsf	status,0
	rlf	(_hang),f
	line	130
	
l3537:	
;game.c: 130: cham=rand()%8;
	fcall	_rand
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movf	(0+(?_rand)),w
	andlw	07h
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	movwf	(_cham)
	line	131
	
l3539:	
;game.c: 131: lv = lv -10;
	movf	(_lv),w
	addlw	0F6h
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	movwf	(_lv)
	line	132
	
l3541:	
;game.c: 132: if (lv==0) lv=100;
	movf	(_lv),f
	skipz
	goto	u2541
	goto	u2540
u2541:
	goto	l1067
u2540:
	
l3543:	
	movlw	(064h)
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	movwf	(_lv)
	goto	l1067
	
l1068:	
	line	133
	
l1067:	
	line	134
;game.c: 133: }
;game.c: 134: if (hang==0x80)
	movf	(_hang),w
	xorlw	080h
	skipz
	goto	u2551
	goto	u2550
u2551:
	goto	l3557
u2550:
	line	136
	
l3545:	
;game.c: 135: {
;game.c: 136: j++;
	movlw	(01h)
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	addwf	(_j),f
	line	137
;game.c: 137: kq= thanh | PORTB;
	movf	(_thanh),w
	iorwf	(6),w	;volatile
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	movwf	(_kq)
	line	138
	
l3547:	
;game.c: 138: if (kq==thanh)
	movf	(_kq),w
	xorwf	(_thanh),w
	skipz
	goto	u2561
	goto	u2560
u2561:
	goto	l3553
u2560:
	line	139
	
l3549:	
;game.c: 139: if(j==1) diem=diem+1;
	movf	(_j),w
	xorlw	01h
	skipz
	goto	u2571
	goto	u2570
u2571:
	goto	l3553
u2570:
	
l3551:	
	movf	(_diem),w
	addlw	01h
	movwf	(??_main+0)+0
	movf	(??_main+0)+0,w
	movwf	(_diem)
	goto	l3553
	
l1071:	
	goto	l3553
	line	140
	
l1070:	
	
l3553:	
;game.c: 140: PORTA = diem;
	movf	(_diem),w
	movwf	(5)	;volatile
	line	141
	
l3555:	
;game.c: 141: kq=0;
	clrf	(_kq)
	goto	l3557
	line	142
	
l1069:	
	line	143
	
l3557:	
;game.c: 142: }
;game.c: 143: PORTB = 0x01<<cham;
	movlw	(01h)
	movwf	(??_main+0)+0
	incf	(_cham),w
	goto	u2584
u2585:
	clrc
	rlf	(??_main+0)+0,f
u2584:
	addlw	-1
	skipz
	goto	u2585
	movf	0+(??_main+0)+0,w
	movwf	(6)	;volatile
	line	144
;game.c: 144: _delay((unsigned long)((10)*(4000000/4000.0)));
	opt asmopt_off
movlw	13
movwf	((??_main+0)+0+1),f
	movlw	251
movwf	((??_main+0)+0),f
u2607:
	decfsz	((??_main+0)+0),f
	goto	u2607
	decfsz	((??_main+0)+0+1),f
	goto	u2607
	nop2
opt asmopt_on

	goto	l3513
	line	145
	
l1072:	
	line	111
	goto	l3513
	
l1073:	
	goto	l3559
	line	146
;game.c: 145: }
;game.c: 146: while(1)
	
l1074:	
	line	148
	
l3559:	
;game.c: 147: {
;game.c: 148: dich();
	fcall	_dich
	goto	l3559
	line	149
	
l1075:	
	line	146
	goto	l3559
	
l1076:	
	line	151
	
l1077:	
	global	start
	ljmp	start
	opt stack 0
GLOBAL	__end_of_main
	__end_of_main:
;; =============== function _main ends ============

	signat	_main,88
	global	_system_init
psect	text172,local,class=CODE,delta=2
global __ptext172
__ptext172:

;; *************** function _system_init *****************
;; Defined at:
;;		line 51 in file "C:\Users\WIN7\Desktop\game\game.c"
;; Parameters:    Size  Location     Type
;;		None
;; Auto vars:     Size  Location     Type
;;		None
;; Return value:  Size  Location     Type
;;		None               void
;; Registers used:
;;		wreg, status,2, status,0, pclath, cstack
;; Tracked objects:
;;		On entry : 0/0
;;		On exit  : 0/0
;;		Unchanged: 0/0
;; Data sizes:     COMMON   BANK0   BANK1   BANK3   BANK2
;;      Params:         0       0       0       0       0
;;      Locals:         0       0       0       0       0
;;      Temps:          0       2       0       0       0
;;      Totals:         0       2       0       0       0
;;Total ram usage:        2 bytes
;; Hardware stack levels used:    1
;; Hardware stack levels required when called:    2
;; This function calls:
;;		_srand
;;		_rand
;; This function is called by:
;;		_main
;; This function uses a non-reentrant model
;;
psect	text172
	file	"C:\Users\WIN7\Desktop\game\game.c"
	line	51
	global	__size_of_system_init
	__size_of_system_init	equ	__end_of_system_init-_system_init
	
_system_init:	
	opt	stack 5
; Regs used in _system_init: [wreg+status,2+status,0+pclath+cstack]
	line	52
	
l3481:	
;game.c: 52: diem=0;
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	clrf	(_diem)
	line	53
;game.c: 53: kq=0;
	clrf	(_kq)
	line	54
;game.c: 54: j=0;
	clrf	(_j)
	line	55
	
l3483:	
;game.c: 55: srand(TMR0);
	movf	(1),w	;volatile
	movwf	(??_system_init+0)+0
	clrf	(??_system_init+0)+0+1
	movf	0+(??_system_init+0)+0,w
	movwf	(?_srand)
	movf	1+(??_system_init+0)+0,w
	movwf	(?_srand+1)
	fcall	_srand
	line	56
	
l3485:	
;game.c: 56: ANSEL =0;
	bsf	status, 5	;RP0=1, select bank3
	bsf	status, 6	;RP1=1, select bank3
	clrf	(392)^0180h	;volatile
	line	57
	
l3487:	
;game.c: 57: ANSELH=0;
	clrf	(393)^0180h	;volatile
	line	58
	
l3489:	
;game.c: 58: TRISE = 0b011;
	movlw	(03h)
	bsf	status, 5	;RP0=1, select bank1
	bcf	status, 6	;RP1=0, select bank1
	movwf	(137)^080h	;volatile
	line	59
	
l3491:	
;game.c: 59: TRISD = 0x00;
	clrf	(136)^080h	;volatile
	line	60
	
l3493:	
;game.c: 60: TRISC = 0X00;
	clrf	(135)^080h	;volatile
	line	61
	
l3495:	
;game.c: 61: TRISB = 0x00;
	clrf	(134)^080h	;volatile
	line	62
	
l3497:	
;game.c: 62: TRISA = 0b000000;
	clrf	(133)^080h	;volatile
	line	63
	
l3499:	
;game.c: 63: thanh = 0x38;
	movlw	(038h)
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movwf	(??_system_init+0)+0
	movf	(??_system_init+0)+0,w
	movwf	(_thanh)
	line	64
	
l3501:	
;game.c: 64: hang = 0x01;
	clrf	(_hang)
	bsf	status,0
	rlf	(_hang),f
	line	65
	
l3503:	
;game.c: 65: i=0;
	clrf	(_i)
	line	66
	
l3505:	
;game.c: 66: cham=rand()%8;
	fcall	_rand
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movf	(0+(?_rand)),w
	andlw	07h
	movwf	(??_system_init+0)+0
	movf	(??_system_init+0)+0,w
	movwf	(_cham)
	line	67
	
l3507:	
;game.c: 67: lv=100;
	movlw	(064h)
	movwf	(??_system_init+0)+0
	movf	(??_system_init+0)+0,w
	movwf	(_lv)
	line	68
	
l3509:	
;game.c: 68: PORTA = diem;
	movf	(_diem),w
	movwf	(5)	;volatile
	line	69
	
l1053:	
	return
	opt stack 0
GLOBAL	__end_of_system_init
	__end_of_system_init:
;; =============== function _system_init ends ============

	signat	_system_init,88
	global	_dich
psect	text173,local,class=CODE,delta=2
global __ptext173
__ptext173:

;; *************** function _dich *****************
;; Defined at:
;;		line 73 in file "C:\Users\WIN7\Desktop\game\game.c"
;; Parameters:    Size  Location     Type
;;		None
;; Auto vars:     Size  Location     Type
;;		None
;; Return value:  Size  Location     Type
;;		None               void
;; Registers used:
;;		wreg, status,2, status,0
;; Tracked objects:
;;		On entry : 0/0
;;		On exit  : 0/0
;;		Unchanged: 0/0
;; Data sizes:     COMMON   BANK0   BANK1   BANK3   BANK2
;;      Params:         0       0       0       0       0
;;      Locals:         0       0       0       0       0
;;      Temps:          2       0       0       0       0
;;      Totals:         2       0       0       0       0
;;Total ram usage:        2 bytes
;; Hardware stack levels used:    1
;; This function calls:
;;		Nothing
;; This function is called by:
;;		_main
;; This function uses a non-reentrant model
;;
psect	text173
	file	"C:\Users\WIN7\Desktop\game\game.c"
	line	73
	global	__size_of_dich
	__size_of_dich	equ	__end_of_dich-_dich
	
_dich:	
	opt	stack 7
; Regs used in _dich: [wreg+status,2+status,0]
	line	74
	
l3457:	
;game.c: 74: if(RE0==0)
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	btfsc	(72/8),(72)&7
	goto	u2461
	goto	u2460
u2461:
	goto	l3469
u2460:
	line	76
	
l3459:	
;game.c: 75: {
;game.c: 76: _delay((unsigned long)((25)*(4000000/4000.0)));
	opt asmopt_off
movlw	33
movwf	((??_dich+0)+0+1),f
	movlw	118
movwf	((??_dich+0)+0),f
u2617:
	decfsz	((??_dich+0)+0),f
	goto	u2617
	decfsz	((??_dich+0)+0+1),f
	goto	u2617
	clrwdt
opt asmopt_on

	line	77
	
l3461:	
;game.c: 77: if(RE0==0)
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	btfsc	(72/8),(72)&7
	goto	u2471
	goto	u2470
u2471:
	goto	l3469
u2470:
	line	79
	
l3463:	
;game.c: 78: {
;game.c: 79: thanh=thanh<<1;
	movf	(_thanh),w
	movwf	(??_dich+0)+0
	addwf	(??_dich+0)+0,w
	movwf	(??_dich+1)+0
	movf	(??_dich+1)+0,w
	movwf	(_thanh)
	line	80
	
l3465:	
;game.c: 80: if(thanh==0xC0) thanh=0xE0;
	movf	(_thanh),w
	xorlw	0C0h
	skipz
	goto	u2481
	goto	u2480
u2481:
	goto	l1058
u2480:
	
l3467:	
	movlw	(0E0h)
	movwf	(??_dich+0)+0
	movf	(??_dich+0)+0,w
	movwf	(_thanh)
	
l1058:	
	line	81
;game.c: 81: PORTC=thanh;
	movf	(_thanh),w
	movwf	(7)	;volatile
	goto	l3469
	line	82
	
l1057:	
	goto	l3469
	line	83
	
l1056:	
	line	84
	
l3469:	
;game.c: 82: }
;game.c: 83: }
;game.c: 84: if(RE1==0)
	btfsc	(73/8),(73)&7
	goto	u2491
	goto	u2490
u2491:
	goto	l1062
u2490:
	line	86
	
l3471:	
;game.c: 85: {
;game.c: 86: _delay((unsigned long)((25)*(4000000/4000.0)));
	opt asmopt_off
movlw	33
movwf	((??_dich+0)+0+1),f
	movlw	118
movwf	((??_dich+0)+0),f
u2627:
	decfsz	((??_dich+0)+0),f
	goto	u2627
	decfsz	((??_dich+0)+0+1),f
	goto	u2627
	clrwdt
opt asmopt_on

	line	87
	
l3473:	
;game.c: 87: if(RE1==0)
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	btfsc	(73/8),(73)&7
	goto	u2501
	goto	u2500
u2501:
	goto	l1062
u2500:
	line	89
	
l3475:	
;game.c: 88: {
;game.c: 89: thanh=thanh>>1;
	movf	(_thanh),w
	movwf	(??_dich+0)+0
	clrc
	rrf	(??_dich+0)+0,w
	movwf	(??_dich+1)+0
	movf	(??_dich+1)+0,w
	movwf	(_thanh)
	line	90
	
l3477:	
;game.c: 90: if(thanh<0x07) thanh=0x07;
	movlw	(07h)
	subwf	(_thanh),w
	skipnc
	goto	u2511
	goto	u2510
u2511:
	goto	l1061
u2510:
	
l3479:	
	movlw	(07h)
	movwf	(??_dich+0)+0
	movf	(??_dich+0)+0,w
	movwf	(_thanh)
	
l1061:	
	line	91
;game.c: 91: PORTC=thanh;
	movf	(_thanh),w
	movwf	(7)	;volatile
	goto	l1062
	line	92
	
l1060:	
	goto	l1062
	line	93
	
l1059:	
	line	94
	
l1062:	
	return
	opt stack 0
GLOBAL	__end_of_dich
	__end_of_dich:
;; =============== function _dich ends ============

	signat	_dich,88
	global	_rand
psect	text174,local,class=CODE,delta=2
global __ptext174
__ptext174:

;; *************** function _rand *****************
;; Defined at:
;;		line 14 in file "C:\Program Files\HI-TECH Software\PICC\9.83\sources\rand.c"
;; Parameters:    Size  Location     Type
;;		None
;; Auto vars:     Size  Location     Type
;;		None
;; Return value:  Size  Location     Type
;;                  2    0[BANK0 ] int 
;; Registers used:
;;		wreg, status,2, status,0, pclath, cstack
;; Tracked objects:
;;		On entry : 0/0
;;		On exit  : 0/0
;;		Unchanged: 0/0
;; Data sizes:     COMMON   BANK0   BANK1   BANK3   BANK2
;;      Params:         0       2       0       0       0
;;      Locals:         0       0       0       0       0
;;      Temps:          0       9       0       0       0
;;      Totals:         0      11       0       0       0
;;Total ram usage:       11 bytes
;; Hardware stack levels used:    1
;; Hardware stack levels required when called:    1
;; This function calls:
;;		_srand
;;		___lmul
;; This function is called by:
;;		_system_init
;;		_main
;; This function uses a non-reentrant model
;;
psect	text174
	file	"C:\Program Files\HI-TECH Software\PICC\9.83\sources\rand.c"
	line	14
	global	__size_of_rand
	__size_of_rand	equ	__end_of_rand-_rand
	
_rand:	
	opt	stack 6
; Regs used in _rand: [wreg+status,2+status,0+pclath+cstack]
	line	15
	
l3451:	
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movf	(_randf),f
	skipz
	goto	u2431
	goto	u2430
u2431:
	goto	l2067
u2430:
	line	16
	
l3453:	
	movlw	low(01h)
	movwf	(?_srand)
	movlw	high(01h)
	movwf	((?_srand))+1
	fcall	_srand
	
l2067:	
	line	17
	movlw	039h
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movwf	((??_rand+0)+0)
	movlw	030h
	movwf	((??_rand+0)+0+1)
	movlw	0
	movwf	((??_rand+0)+0+2)
	movlw	0
	movwf	((??_rand+0)+0+3)
	movf	(_randx+3),w
	movwf	(?___lmul+3)
	movf	(_randx+2),w
	movwf	(?___lmul+2)
	movf	(_randx+1),w
	movwf	(?___lmul+1)
	movf	(_randx),w
	movwf	(?___lmul)

	movlw	041h
	movwf	3+(?___lmul)+04h
	movlw	0C6h
	movwf	2+(?___lmul)+04h
	movlw	04Eh
	movwf	1+(?___lmul)+04h
	movlw	06Dh
	movwf	0+(?___lmul)+04h

	fcall	___lmul
	movf	(0+(?___lmul)),w
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	addwf	(??_rand+0)+0,f
	movf	(1+(?___lmul)),w
	skipnc
	incfsz	(1+(?___lmul)),w
	goto	u2440
	goto	u2441
u2440:
	addwf	(??_rand+0)+1,f
u2441:
	movf	(2+(?___lmul)),w
	skipnc
	incfsz	(2+(?___lmul)),w
	goto	u2442
	goto	u2443
u2442:
	addwf	(??_rand+0)+2,f
u2443:
	movf	(3+(?___lmul)),w
	skipnc
	incf	(3+(?___lmul)),w
	addwf	(??_rand+0)+3,f
	movf	3+(??_rand+0)+0,w
	movwf	(_randx+3)
	movf	2+(??_rand+0)+0,w
	movwf	(_randx+2)
	movf	1+(??_rand+0)+0,w
	movwf	(_randx+1)
	movf	0+(??_rand+0)+0,w
	movwf	(_randx)

	movf	((_randx)),w
	movwf	(??_rand+4)+0
	movf	((_randx+1)),w
	movwf	((??_rand+4)+0+1)
	movf	((_randx+2)),w
	movwf	((??_rand+4)+0+2)
	movf	((_randx+3)),w
	movwf	((??_rand+4)+0+3)
	movlw	010h
	movwf	(??_rand+8)+0
u2455:
	rlf	(??_rand+4)+3,w
	rrf	(??_rand+4)+3,f
	rrf	(??_rand+4)+2,f
	rrf	(??_rand+4)+1,f
	rrf	(??_rand+4)+0,f
u2450:
	decfsz	(??_rand+8)+0,f
	goto	u2455
	movlw	low(07FFFh)
	andwf	0+(??_rand+4)+0,w
	movwf	(?_rand)
	movlw	high(07FFFh)
	andwf	1+(??_rand+4)+0,w
	movwf	1+(?_rand)
	goto	l2068
	
l3455:	
	line	18
	
l2068:	
	return
	opt stack 0
GLOBAL	__end_of_rand
	__end_of_rand:
;; =============== function _rand ends ============

	signat	_rand,90
	global	___lmul
psect	text175,local,class=CODE,delta=2
global __ptext175
__ptext175:

;; *************** function ___lmul *****************
;; Defined at:
;;		line 3 in file "C:\Program Files\HI-TECH Software\PICC\9.83\sources\lmul.c"
;; Parameters:    Size  Location     Type
;;  multiplier      4    0[COMMON] unsigned long 
;;  multiplicand    4    4[COMMON] unsigned long 
;; Auto vars:     Size  Location     Type
;;  product         4    9[COMMON] unsigned long 
;; Return value:  Size  Location     Type
;;                  4    0[COMMON] unsigned long 
;; Registers used:
;;		wreg, status,2, status,0
;; Tracked objects:
;;		On entry : 0/0
;;		On exit  : 0/0
;;		Unchanged: 0/0
;; Data sizes:     COMMON   BANK0   BANK1   BANK3   BANK2
;;      Params:         8       0       0       0       0
;;      Locals:         4       0       0       0       0
;;      Temps:          1       0       0       0       0
;;      Totals:        13       0       0       0       0
;;Total ram usage:       13 bytes
;; Hardware stack levels used:    1
;; This function calls:
;;		Nothing
;; This function is called by:
;;		_rand
;; This function uses a non-reentrant model
;;
psect	text175
	file	"C:\Program Files\HI-TECH Software\PICC\9.83\sources\lmul.c"
	line	3
	global	__size_of___lmul
	__size_of___lmul	equ	__end_of___lmul-___lmul
	
___lmul:	
	opt	stack 6
; Regs used in ___lmul: [wreg+status,2+status,0]
	line	4
	
l3437:	
	movlw	0
	movwf	(___lmul@product+3)
	movlw	0
	movwf	(___lmul@product+2)
	movlw	0
	movwf	(___lmul@product+1)
	movlw	0
	movwf	(___lmul@product)

	goto	l3439
	line	6
	
l2152:	
	line	7
	
l3439:	
	btfss	(___lmul@multiplier),(0)&7
	goto	u2381
	goto	u2380
u2381:
	goto	l3443
u2380:
	line	8
	
l3441:	
	movf	(___lmul@multiplicand),w
	addwf	(___lmul@product),f
	movf	(___lmul@multiplicand+1),w
	clrz
	skipnc
	addlw	1
	skipnz
	goto	u2391
	addwf	(___lmul@product+1),f
u2391:
	movf	(___lmul@multiplicand+2),w
	clrz
	skipnc
	addlw	1
	skipnz
	goto	u2392
	addwf	(___lmul@product+2),f
u2392:
	movf	(___lmul@multiplicand+3),w
	clrz
	skipnc
	addlw	1
	skipnz
	goto	u2393
	addwf	(___lmul@product+3),f
u2393:

	goto	l3443
	
l2153:	
	line	9
	
l3443:	
	movlw	01h
	movwf	(??___lmul+0)+0
u2405:
	clrc
	rlf	(___lmul@multiplicand),f
	rlf	(___lmul@multiplicand+1),f
	rlf	(___lmul@multiplicand+2),f
	rlf	(___lmul@multiplicand+3),f
	decfsz	(??___lmul+0)+0
	goto	u2405
	line	10
	
l3445:	
	movlw	01h
u2415:
	clrc
	rrf	(___lmul@multiplier+3),f
	rrf	(___lmul@multiplier+2),f
	rrf	(___lmul@multiplier+1),f
	rrf	(___lmul@multiplier),f
	addlw	-1
	skipz
	goto	u2415

	line	11
	movf	(___lmul@multiplier+3),w
	iorwf	(___lmul@multiplier+2),w
	iorwf	(___lmul@multiplier+1),w
	iorwf	(___lmul@multiplier),w
	skipz
	goto	u2421
	goto	u2420
u2421:
	goto	l3439
u2420:
	goto	l3447
	
l2154:	
	line	12
	
l3447:	
	movf	(___lmul@product+3),w
	movwf	(?___lmul+3)
	movf	(___lmul@product+2),w
	movwf	(?___lmul+2)
	movf	(___lmul@product+1),w
	movwf	(?___lmul+1)
	movf	(___lmul@product),w
	movwf	(?___lmul)

	goto	l2155
	
l3449:	
	line	13
	
l2155:	
	return
	opt stack 0
GLOBAL	__end_of___lmul
	__end_of___lmul:
;; =============== function ___lmul ends ============

	signat	___lmul,8316
	global	_srand
psect	text176,local,class=CODE,delta=2
global __ptext176
__ptext176:

;; *************** function _srand *****************
;; Defined at:
;;		line 8 in file "C:\Program Files\HI-TECH Software\PICC\9.83\sources\rand.c"
;; Parameters:    Size  Location     Type
;;  x               2    0[COMMON] unsigned int 
;; Auto vars:     Size  Location     Type
;;		None
;; Return value:  Size  Location     Type
;;		None               void
;; Registers used:
;;		wreg, status,2, status,0
;; Tracked objects:
;;		On entry : 0/0
;;		On exit  : 0/0
;;		Unchanged: 0/0
;; Data sizes:     COMMON   BANK0   BANK1   BANK3   BANK2
;;      Params:         2       0       0       0       0
;;      Locals:         0       0       0       0       0
;;      Temps:          0       0       0       0       0
;;      Totals:         2       0       0       0       0
;;Total ram usage:        2 bytes
;; Hardware stack levels used:    1
;; This function calls:
;;		Nothing
;; This function is called by:
;;		_system_init
;;		_rand
;; This function uses a non-reentrant model
;;
psect	text176
	file	"C:\Program Files\HI-TECH Software\PICC\9.83\sources\rand.c"
	line	8
	global	__size_of_srand
	__size_of_srand	equ	__end_of_srand-_srand
	
_srand:	
	opt	stack 6
; Regs used in _srand: [wreg+status,2+status,0]
	line	9
	
l3433:	
	movf	(srand@x),w
	bcf	status, 5	;RP0=0, select bank0
	bcf	status, 6	;RP1=0, select bank0
	movwf	(_randx)
	movf	(srand@x+1),w
	movwf	((_randx))+1
	clrf	2+((_randx))
	clrf	3+((_randx))
	line	10
	
l3435:	
	clrf	(_randf)
	bsf	status,0
	rlf	(_randf),f
	line	11
	
l2064:	
	return
	opt stack 0
GLOBAL	__end_of_srand
	__end_of_srand:
;; =============== function _srand ends ============

	signat	_srand,4216
psect	text177,local,class=CODE,delta=2
global __ptext177
__ptext177:
	global	btemp
	btemp set 07Eh

	DABS	1,126,2	;btemp
	global	wtemp0
	wtemp0 set btemp
	end
